#pragma once
#include "UltimatePhysicsSubsystem.h"
#include "UltimatePhysX3Precompiled.h"
#include "UltimatePhysX3Scene.h"

using namespace physx;




class _UltimatePhysX3Export UltimatePhysX3Subsystem :
	public UltimatePhysicsSubsystem
{

	PxDefaultErrorCallback gDefaultErrorCallback;
	PxDefaultAllocator gDefaultAllocatorCallback;

	PxFoundation* mFoundation;
	PxPhysics*	mPhysics;
	PxDefaultCpuDispatcher*	mCpuDispatcher;


	PxScene* mScene;

	UltimatePhysX3Scene *mPhysX3Scene;

public:
	UltimatePhysX3Subsystem(void);
	~UltimatePhysX3Subsystem(void);

	virtual bool initPhysics();
	virtual UltimatePhysicsScene * createPhysicsScene();
	virtual void destroyPhysicsScene();
	
};

